System and method for measuring a three-dimensional object

ABSTRACT

A system for measuring a three-dimensional object is provided. The system measures differences between a 3D model of an object and a point cloud of the object, and highlights the differences on the 3D model using different colors according to difference ranges that the differences fall.

BACKGROUND

1. Technical Field

Embodiments of the present disclosure generally relate to computer aideddesign (CAD) systems and methods, and more particularly to a system andmethod for measuring a three-dimensional (3D) object.

2. Description of Related Art

Generally, before manufacturing an object, a 3D model of the object isfirst drawn using a CAD model. The object is then manufactured accordingto the 3D model.

However, due to manufacturing factors, the manufactured object may notbe exactly the same as the 3D model for the manufactured object may haveerrors. What is needed, therefore, is a system and method for measuringthe manufactured object, so as to determine a precision of themanufactured object.

SUMMARY

A system for measuring a 3D object is provided. The system includes ascanning module, a processing module, a reading module, an adjustingmodule, an aligning module, a contrasting module, and at least oneprocessor. The scanning module is configured for controlling a laserscanning device to scan all surfaces of an object for obtaining a pointcloud of each of the surfaces. The processing module is configured forprocessing the point clouds so as to obtain an integrated point cloud ofthe object. The reading module is configured for reading a 3D model ofthe object from a database system. The adjusting module is configuredfor adjusting normal vectors of surfaces of the 3D model for making thenormal of all the surfaces of the 3D model have the same orientation.The aligning module is configured for aligning the integrated pointcloud with the 3D model. The contrasting module is configured forcontrasting the integrated point cloud and the 3D model, andhighlighting differences between the integrated point cloud and the 3Dmodel by assigning different colors on the 3D model. At least oneprocessor is configured for executing the scanning module, theprocessing module, the reading module, the adjusting module, thealigning module, and the contrasting module.

Other advantages and novel features of the present invention will becomemore apparent from the following detailed description of preferredembodiment when taken in conjunction with the accompanying drawings, inwhich:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of one embodiment of a system for measuring a3D object;

FIG. 2 is a flowchart illustrating one embodiment of a method formeasuring a 3D object;

FIG. 3 is a detailed description of one block in FIG. 2 of oneembodiment of a method for obtaining an integrated point cloud of theobject;

FIG. 4 is a detailed description of another block in FIG. 2 of oneembodiment of a method for making normal of surfaces of the 3D modelhave the same orientation by adjusting normal vectors automatically;

FIG. 5 is a detailed description of the block of FIG. 4 of anotherembodiment of a method for making normal of surfaces of the 3D modelhave the same orientation by designating positions;

FIG. 6 is a detailed description of another block in FIG. 2 of oneembodiment of a method for aligning the integrated point cloud and the3D model;

FIG. 7 is a detailed description of another block in FIG. 2 of oneembodiment of a method for contrasting and highlighting differencesbetween the integrated point cloud and the 3D model;

FIG. 8 is a detailed description of another block in FIG. 2 of oneembodiment of a method for creating a pointer for each position on the3D model; and

FIG. 9 is a diagram illustrating normal vectors of surfaces.

DETAILED DESCRIPTION OF CERTAIN INVENTIVE EMBODIMENTS

All of the processes described below may be embodied in, and fullyautomated via, software code modules executed by one or more generalpurpose computers or processors. The code modules may be stored in anytype of computer-readable medium or other computer storage device. Someor all of the methods may alternatively be embodied in specializedcomputer hardware.

FIG. 1 is a block diagram of one embodiment of a system for measuring a3D object. In one embodiment, the system 1 may include a computer 10, adatabase system 20, and a laser scanning device 30. The laser scanningdevice 30 and the database system 20 electronically connect andcommunicate with the computer 10. The laser scanning device 30 isconfigured for scanning an object (not shown) for obtaining a pointcloud of each surface of the object. It may be understood that a pointcloud is a set of vertices of each surface of an object in athree-dimensional coordinate system. These vertices are usually definedby X, Y and Z coordinates. The laser scanning device 30 measures a largenumber of points on each surface of the object, and outputs a pointcloud of the each surface as a data file. The point cloud represents thevisible surface of the object that has been scanned or digitized. Thedatabase system 20 stores a 3D model of the object.

The computer 10 includes a plurality of modules that may be used toimplement certain functions and will be described in greater detailbelow. In one embodiment, the computer 10 may include a scanning module110, a processing module 120, a reading module 130, an adjusting module140, an aligning module 150, a contrasting module 160, and a pointingmodule 170. The various modules 110, 120, 130, 140, 150, 160, and 170may be executed by one or more specialized or general purposeprocessors, such as a processor 180.

The scanning module 110 is configured for controlling the laser scanningdevice 30 to scan all the surfaces of the object, so as to obtain apoint cloud of each surface.

The processing module 120 is configured for obtaining an integratedpoint cloud of the object by processing the point clouds of all thesurfaces. In one embodiment, the processing module 120 obtains theintegrated point cloud using a method as follows. Firstly, theprocessing module 120 arranges the point clouds together according to anappearance of the object. Secondly, the processing module 120 deletesredundant points from the point clouds. Then, the processing module 120deletes noise points from the point clouds. Afterwards, the processingmodule 120 filters the point clouds in order to yield uniformlydistributed point clouds. Finally, the processing module 120 integratesthe point clouds, so as to generate the integrated point cloud of theobject. It will be understood that the redundant points are overlappingpoints among the point clouds. It will be further understood that thenoise points are points not belonging to the object.

In other embodiments, filtering the point clouds may use a method ofwell-proportioned filtering or a method of curvature filtering. Themethod of well-proportioned filtering may be realized by regularlydeleting points from the point clouds. The method of curvature filteringmay be realized by deleting points from a point cloud of a surfaceaccording to a curvature of the surface, that is, selectively deleting alarge amount of points from a point cloud of a surface if the surfacehas a small curvature, and selectively deleting a few amount of pointsfrom a point cloud of a surface if the surface has a large curvature.

The reading module 130 is configured for reading the 3D model of theobject from the database system 20.

The 3D model may comprise many surfaces having different orientationsand angled along different planes of a 3D coordinate axis system. Avector normal (hereinafter, “the normal vector”) to each of thesesurfaces may be determined by the adjusting module 140. Furthermore, theadjusting module 140 is configured for adjusting normal vectors of eachof the surfaces of the 3D model, so as to make all of the normal vectorshave the same orientation. It may be understood that, the normal vectorof a surface is vector that is perpendicular to a plane tangent to thesurface. The normal vectors may be oriented upwards so as to extend inan orientation inside a surface of the 3D model or the normal vectorsmay be oriented downwards so as to extend in an orientation outside asurface of the 3D model, depending on the 3D model and the embodiment.Referring to FIG. 9, the normal vector of the surface S1 is outside, andthe normal vectors of the surfaces S2 and S3 are inside. It may beunderstood that normal vectors all having the same orientation means allof the normal vectors are inside or outside.

In one embodiment, the adjusting may be automatic or by designatingpositions manually. In one embodiment, the method of adjusting normalvectors automatically may include determining a base surface from the 3Dmodel and presetting a distance tolerance. Secondly, boundaries of thebase surface and other surfaces of the 3D model are determined. Then,intersecting surfaces between the base surface and each of the surfacesof the 3D model are determined according to the distance tolerance andthe boundaries. It may be understood that, if a boundary distancebetween the base surface and a surface of the 3D model is less than thedistance tolerance, the surface is the intersecting surface. Afterwards,the intersecting surfaces whose normal vectors are the same as thenormal vector of the base surface are selected. Finally, the normalvectors of the selected intersecting surfaces are adjusted.

In one embodiment, the method of adjusting normal vectors by designatingpositions manually may include determining surfaces whose normal vectorsneed to be adjusted from the 3D model. Then, the determined surfaces aremeshed with a series of triangles. Afterwards, a position on thedetermined surfaces is designated randomly. Then, an uppermost layertriangle that contains the designated position from the series oftriangles is determined. Afterwards, an angle between a vector of theuppermost layer triangle and a current visual angle of a screen of thecomputer 10 is computed. Then, the surface that contains the uppermostlayer triangle if the angle is more than 90 degree is obtained. Finally,the normal vector of the obtained surface is adjusted by reversingpoints of the boundary of the obtained surface.

The aligning module 150 is configured for aligning the integrated pointcloud with the 3D model. In one embodiment, the aligning module 150aligns the integrated point cloud with the 3D model by superposing acenter point of the integrated point cloud and a center of the 3D modelby moving the integrated point cloud. Then, several points from theintegrated point cloud are determined randomly. After that, anapproximate site of the integrated point cloud is computed using aniterative method according to the several points. Then, an accurate siteof the integrated point cloud is computed using the iterative methodaccording to the approximate site and all points in the integrated pointcloud. Finally, the integrated point cloud is rotated and translated tothe accurate site. It may be understood that, the iterative methodrefers to a wide range of techniques that use successive approximationsto obtain more accurate solutions to a linear system at each step. Thus,for reducing a computational work, the approximate site is computedfirstly, and then, the accurate site is computed according to theapproximate site.

The contrasting module 160 is configured for contrasting the integratedpoint cloud and the 3D model, and highlighting differences between theintegrated point cloud and the 3D model by assigning different colors onthe 3D model. In one embodiment, the contrasting module 160 contraststhe integrated point cloud and the 3D model and highlights differencesbetween the integrated point cloud and the 3D model using a method asfollows. Firstly, the contrasting module 160 meshes all the surfaces ofthe 3D model with a series of triangles. Then, the contrasting module160 computes a difference between each of the points in the integratedpoint cloud and a corresponding triangle on the surfaces of the 3Dmodel. After that, the contrasting module 160 presets a plurality ofdifference ranges and presets a unique color for each of the differenceranges. Finally, the contrasting module 160 highlights the trianglesusing the unique color of a difference range in which the difference ofthe triangle falls. It may be understood that, the integrated pointcloud of the object corresponds to the 3D model of the object, and eachpoint in the integrated point cloud has a corresponding position and acorresponding triangle that contains the corresponding position on the3D model. In one embodiment, if a triangle of the 3D model has aplurality of corresponding points in the integrated point cloud, thedifference of the triangle is an average distance between the triangleand the plurality of corresponding points in the integrated point cloud.

The pointing module 170 is configured for creating a pointer for eachposition on the 3D model for showing a difference and a color of theeach position when the position is designated. A difference of aposition is the distance (or average distance) between the triangle thatcontains the position on the 3D model and the corresponding point (orpoints) in the integrated point cloud. It may be understood that, thepointer is a programming language data type whose value refers directlyto (or “points to”) another values (the difference and the color) storedelsewhere in the database system 20 using its address. when a userdesignates a position on the 3D model using a mouse of the computer 1,the pointer of the position acquires the difference and the color of theposition from the database system 20, and shows the difference and thecolor on the screen of the computer 10.

FIG. 2 is a flowchart illustrating one embodiment of a method formeasuring a 3D object. Depending on the embodiment, in FIG. 2,additional blocks may be added, others removed, and the ordering of theblocks may be changed.

In block S11, the scanning module 110 controls the laser scanning device30 to scan all surfaces of an object to obtain a point cloud for each ofthe surfaces. As mentioned above, the object may be three-dimensionaland have many surfaces.

In block S12, the processing module 120 processes the point clouds so asto obtain an integrated point cloud of the object. A detaileddescription of block S12 is given in FIG. 3.

In block S 13, the reading module 130 reads a 3D model of the objectfrom the database system 20.

In block S14, the adjusting module 140 adjusts normal vectors of each ofthe surfaces of the 3D model so as to align normal vectors of each ofthe surfaces of the 3D model. As mentioned above, the normal vectors maybe inside or outside. The adjusting may be realized by automatically orby designating positions manually. The method of adjusting normalvectors automatically is described in FIG. 4 in detailed, and the methodof adjusting normal vectors by designating positions manually isdescribed in FIG. 5 in detailed.

In block S15, the aligning module 150 aligns the integrated point cloudwith the 3D model. A detailed description of block S15 is described inFIG. 6.

In block S16, the contrasting module 160 contrasts the integrated pointcloud and the 3D model, and highlights differences between theintegrated point cloud and the 3D model by assigning different colors onthe 3D model. A detailed description of block S16 is given in FIG. 7.

In block S17, the pointing module 170 creates a pointer for eachposition on the 3D model for showing the difference and the color of theeach position when the position is designated. A detailed description ofblock S17 is given in FIG. 8.

FIG. 3 is a detailed description of block S12 in FIG. 2 of oneembodiment of a method for obtaining an integrated point cloud of theobject. Depending on the embodiment, in FIG. 3, additional blocks may beadded, others removed, and the ordering of the blocks may be changed.

In block S121, the processing module 120 arranges each of the pointclouds together according to an appearance of the object.

In block S122, the processing module 120 deletes redundant points fromthe point clouds. That is, if two points overlap each other, one of themis deleted

In block S123, the processing module 120 deletes noise points from thepoint clouds. As mentioned above, the noise points is points that do notbelong to the object.

In block S124, the processing module 120 filters the point clouds toyield uniformly distributed point clouds. As mentioned above, filteringthe point clouds may use a method of well-proportioned filtering or amethod of curvature filtering. As mentioned above, the method ofwell-proportioned filtering may be realized by regularly deleting pointsfrom the point clouds. The method of curvature filtering may be realizedby deleting points from a point cloud of a surface according to acurvature of the surface, that is, selectively deleting a large amountof points from a point cloud of a surface if the surface have a smallcurvature, and selectively deleting a small amount points from a pointcloud of a surface if the surface have a large curvature.

In block S125, the processing module 120 integrates the point clouds forgenerating the integrated point cloud of the object.

FIG. 4 is a flowchart illustrating one embodiment of a method foradjusting normal vectors automatically. Depending on the embodiment, inFIG. 4, additional blocks may be added, others removed, and the orderingof the blocks may be changed.

In block S1411, the adjusting module 140 determines a base surface fromthe surfaces of the 3D model and presets a distance tolerance. In oneembodiment, the base surface may be determined randomly.

In block S1412, the adjusting module 140 determines boundaries of thebase surface and the other surfaces of the 3D model.

In block S1413, the adjusting module 140 determines intersectingsurfaces between the base surface and each of the surfaces of the 3Dmodel, according to the distance tolerance and the boundaries. In oneembodiment, if a boundary distance between the base surface and asurface of the 3D model is less than the distance tolerance, the surfaceis the intersecting surface.

In block S1414, the adjusting module 140 selects the intersectingsurfaces whose normal vectors are the same as the normal vector of thebase surface.

In block S1415, the adjusting module 140 adjusts the normal vectors ofthe selected intersecting surfaces.

FIG. 5 is a flowchart illustrating one embodiment of a method foradjusting normal vectors by designating positions manually. Depending onthe embodiment, in FIG. 5, additional blocks may be added, othersremoved, and the ordering of the blocks may be changed.

In block 1421, the adjusting module 140 determines surfaces whose normalvectors need to be adjusted from the surfaces of the 3D model.

In block S1422, the adjusting module 140 meshes the determined surfaceswith a series of triangles.

In block S1423, the adjusting module 140 designates a position on thedetermined surfaces.

In block S1424, the adjusting module 140 determines an uppermost layertriangle that contain the position from the series of triangles.

In block S1425, the adjusting module 140 computes an angle between avector of the uppermost layer triangle and a current visual angle of ascreen of the computer 10.

In block S1426, the adjusting module 140 determines whether the angle ismore than 90 degrees. The flow moves to block S1427 if the angle is morethan 90 degree. Otherwise, the flow moves to the end if the angle is notmore than 90 degree.

In block S1427, the adjusting module 140 obtains the surface thatcontains the uppermost layer triangle, and in block S1428, the adjustingmodule 140 adjusts the normal vector of the obtained surface byreversing points of the boundary of the surface that contains theuppermost layer triangle.

FIG. 6 is a detailed description of block S15 in FIG. 2 of oneembodiment of a method for aligning the integrated point cloud with the3D model. Depending on the embodiment, in FIG. 6, additional blocks maybe added, others removed, and the ordering of the blocks may be changed.

In block S151, the aligning module 150 superposes a center point of theintegrated point cloud with a center of the 3D model by moving theintegrated point cloud.

In block S152, the aligning module 150 determines several points in theintegrated point cloud, and computes an approximate site using aniterative method according to the several points. In one embodiment, theiterative method is a quasi-newton iterative method. If square sum ofdistances between the several points in the integrated point cloud andcorresponding triangles of the 3D model is smallest, the site of theseveral points is the approximate site.

In block S153, the aligning module 150 computes an accurate site usingthe iterative method, according to the approximate site and all pointsin the integrated point cloud.

In block S154, the aligning module 150 rotates and translates theintegrated point cloud to the accurate site.

FIG. 7 is a detailed description of block S16 in FIG. 2 of oneembodiment of a method for contrasting and highlighting differencesbetween the integrated point cloud and the 3D model. Depending on theembodiment, in FIG. 7, additional blocks may be added, others removed,and the ordering of the blocks may be changed.

In block S161, the contrasting module 160 meshes all the surfaces of the3D model with a series of triangles.

In block S162, the contrasting module 160 computes a difference betweeneach of the points in the integrated point cloud and a correspondingtriangle of the surfaces of the 3D model. As mentioned above, theintegrated point cloud of the object corresponds to the 3D model of theobject, and each point in the integrated point cloud has a correspondingposition on the 3D model. Thus, a corresponding triangle contains thecorresponding position of the point. In one embodiment, a differencebetween a point in the integrated point cloud and a correspondingtriangle of the surfaces of the 3D model is a distance between the pointand the corresponding triangle.

In block S163, the contrasting module 160 presets a plurality ofdifference ranges and presets a unique color for each of the differenceranges. For example, setting a difference range as 0.1˜0.15 and settinga color of the difference range −0.15˜−0.1 is yellow, and so on.

In block S164, the contrasting module 160 highlights the trianglesaccording to the differences of the triangles using different colorsbased on the difference ranges. In one embodiment, if a triangle of the3D model has a plurality of corresponding points in the integrated pointcloud, the difference of the triangle is an average distance between thetriangle and the plurality of corresponding points. In an exemplaryexample, if the difference (average distance) of a triangle is 0.12, thetriangle is highlighted to as yellow.

FIG. 8 is a detailed description of block S17 in FIG. 2 of oneembodiment of a method for creating a pointer for each position on the3D model. Depending on the embodiment, in FIG. 8, additional blocks maybe added, others removed, and the ordering of the blocks may be changed.

In block S171, the pointing module 170 designates a position on the 3Dmodel discretionarily.

In block S172, the pointing module 170 acquires a difference and a colorof the triangle that contains the position.

In block S173, the pointing module 170 creates a pointer of the positionfor referring directly to (or “pointing to”) the difference and thecolor of the position using address.

Although certain inventive embodiments of the present disclosure havebeen specifically described, the present disclosure is not to beconstrued as being limited thereto. Various changes or modifications maybe made to the present disclosure without departing from the scope andspirit of the present disclosure.

1. A computing system for measuring a three-dimensional object, thesystem comprising: a scanning module configured for controlling a laserscanning device to scan all surfaces of the object for obtaining a pointcloud for each of the surfaces of the object; a processing moduleconfigured for obtaining an integrated point cloud of the object; areading module configured for reading a three-dimensional (3D) model ofthe object from a database system; an adjusting module configured fordetermining a normal vector to each surface of the 3D model, and furtherconfigured for adjusting the normal vectors so as to align the normalvectors to have the same orientation, wherein the adjusting is done byusing a method of adjusting normal vectors automatically or by using amethod of adjusting normal vectors by designating positions, the methodof adjusting normal vectors automatically comprising: (d1) determining abase surface from the surfaces of the 3D model and presetting a distancetolerance; (d2) determining boundaries of the base surface and the othersurfaces of the 3D model; (d3) determining intersecting surfaces betweenthe base surface and the other surfaces of the 3D model according to thedistance tolerance and the boundaries; (d4) selecting the intersectingsurfaces whose normal vectors are the same as the normal vector of thebase surface; and (d5) adjusting the normal vectors of the selectedintersecting surfaces; an aligning module configured for aligning theintegrated point cloud with the 3D model; a contrasting moduleconfigured for contrasting the integrated point cloud and the 3D model,and highlighting differences between the integrated point cloud and the3D model by assigning different colors on the 3D model; and at least oneprocessor configured for executing the scanning module, the processingmodule, the reading module, the adjusting module, the aligning module,and the contrasting module.
 2. The system as described in claim 1,further comprising: a pointing module configured for creating a pointerfor each position on the 3D model for showing a difference and a colorof the each position when the each position is created.
 3. The system asdescribed in claim 1, wherein the integrated point cloud of the objectis a combination of the point cloud for each surface of the object. 4.The system as described in claim 1, wherein the normal vector is insideor outside a respective surface of the 3D model.
 5. A computer-basedmethod for measuring a three-dimensional object, the method comprising:(a) scanning all surfaces of the object for obtaining a point cloud foreach of the surfaces; (b) obtaining an integrated point cloud of theobject by processing the point clouds; (c) reading a 3D model of theobject from a database system; (d) determining a normal vector to eachsurface of the 3D model, and adjusting normal vectors so as to align thenormal vectors have the same orientation, wherein the adjusting is doneby using a method of adjusting normal vectors automatically or by usinga method of adjusting normal vectors by designating positions, themethod of adjusting normal vectors automatically comprising: (d1)determining a base surface from the surfaces of the 3D model andpresetting a distance tolerance; (d2) determining boundaries of the basesurface and the other surfaces of the 3D model; (d3) determiningintersecting surfaces between the base surface and the other surfaces ofthe 3D model according to the distance tolerance and the boundaries;(d4) selecting the intersecting surfaces whose normal vectors are thesame as the normal vector of the base surface; and (d5) adjusting thenormal vectors of the selected intersecting surfaces; (e) aligning theintegrated point cloud with the 3D model; and (f) contrasting theintegrated point cloud and the 3D model, and highlighting differencesbetween the integrated point cloud and the 3D model by assigningdifferent colors on the 3D model.
 6. The method as described in claim 5,further comprising: creating a pointer for each position on the 3D modelfor showing a difference and a color of the each position when the eachposition is created.
 7. The method as described in claim 5, whereinblock (b) comprises: arranging the point clouds together according to anappearance of the object; deleting overlapping points among the pointclouds; deleting noise points from the point cloud; yielding uniformlydistributed point clouds by filtering; and integrating the point cloudsfor generating an integrated point cloud of the object.
 8. The method asdescribed in claim 5, wherein the method of adjusting normal vectors bydesignating positions comprises: determining surfaces whose normalvectors need to be adjusted from the surfaces of the 3D model; meshingthe determined surfaces with a series of triangles; designating aposition on the determined surfaces; determining an uppermost layertriangle that contains the position from the series of triangles;computing an angle between a vector of the uppermost layer triangle anda current visual angle of a screen of the computer; obtaining a surfacethat contains the uppermost layer triangle upon the condition that theangle is more than 90 degree; and adjusting the normal vector of theobtained surface by reversing points of the boundary of the obtainedsurface.
 9. The method as described in claim 5, wherein block (e)comprises: superposing a center point of the integrated point cloud witha center of the 3D model by moving the integrated point cloud;determining several points from the integrated point cloud, andcomputing a approximate site using an iterative method according to theseveral points; computing an accurate site using the iterative method,according to the approximate site and all points in the integrated pointcloud; and rotating and translating the integrated point cloud to theaccurate site.
 10. The method as described in claim 5, wherein block (f)comprises: meshing all the surfaces of the 3D model with a series oftriangles; computing a difference between each of the points in theintegrated point cloud and a corresponding triangle of the surfaces ofthe 3D model; presetting a plurality of difference ranges and presettinga unique color for each of the difference ranges; and highlighting thetriangles using different colors according to the difference ranges. 11.A non-transitory computer-readable medium having stored thereoninstructions that, when executed by a computer, causing the computer toperform a method for measuring a three-dimensional object, the methodcomprising: (a) scanning all surfaces of the object for obtaining apoint cloud for each of the surfaces; (b) obtaining an integrated pointcloud of the object by processing the point clouds; (c) reading a 3Dmodel of the object from a database system; (d) determining a normalvector to each surface of the 3D model, and adjusting normal vectors soas to align the normal vectors have the same orientation, wherein theadjusting is done by using a method of adjusting normal vectorsautomatically or by using a method of adjusting normal vectors bydesignating positions, the method of adjusting normal vectorsautomatically comprising: (d1) determining a base surface from thesurfaces of the 3D model and presetting a distance tolerance; (d12)determining boundaries of the base surface and the other surfaces of the3D model; (d13) determining intersecting surfaces between the basesurface and the other surfaces of the 3D model according to the distancetolerance and the boundaries; (d4) selecting the intersecting surfaceswhose normal vectors are the same as the normal vector of the basesurface; and (d5) adjusting the normal vectors of the selectedintersecting surfaces; (e) aligning the integrated point cloud with the3D model; and (f) contrasting the integrated point cloud and the 3Dmodel, and highlighting differences between the integrated point cloudand the 3D model by assigning different colors on the 3D model.
 12. Thenon-transitory computer-readable medium as described in claim 11,wherein the method further comprises: creating a pointer for eachposition on the 3D model for showing a difference and a color of theeach position when the each position is designated.
 13. Thenon-transitory computer-readable medium as described in claim 11,wherein block (b) comprises: arranging the point clouds togetheraccording to an appearance of the object; deleting overlapping pointsamong the point clouds; deleting noise points from the point cloud;yielding uniformly distributed point clouds by filtering; andintegrating the point clouds for generating an integrated point cloud ofthe object.
 14. The non-transitory computer-readable medium as describedin claim 11, wherein the method of adjusting normal vectors bydesignating positions comprises: determining surfaces whose normalvectors need to be adjusted from the surfaces of the 3D model; meshingthe determined surfaces with a series of triangles; designating aposition on the determined surfaces; determining an uppermost layertriangle that contains the position from the series of triangles;computing an angle between a vector of the uppermost layer triangle anda current visual angle of a screen of the computer; obtaining thesurface that contains the uppermost layer triangle upon the conditionthat the angle is more than 90 degree; and adjusting the normal vectorof the obtained surface by reversing points of the boundary of theobtained surface.
 15. The non-transitory computer-readable medium asdescribed in claim 11, wherein block (e) comprises: superposing a centerpoint of the integrated point cloud with a center of the 3D model bymoving the integrated point cloud; determining several points from theintegrated point cloud, and computing a approximate site using aniterative method according to the several points; computing an accuratesite using the iterative method, according to the approximate site andall points in the integrated point cloud; and rotating and translatingthe integrated point cloud to the accurate site.
 16. The non-transitorycomputer-readable medium as described in claim 11, wherein block (f)comprises: meshing all the surfaces of the 3D model with a series oftriangles; computing a difference between each of the points in theintegrated point cloud and a corresponding triangle of the surfaces ofthe 3D model; presetting a plurality of difference ranges and presettinga unique color for each of the difference ranges; and highlighting thetriangles using different colors according to the difference ranges.